package com.ruoyi.iot.mapper;

import com.ruoyi.iot.domain.entity.DeviceElectricalWindow;
import com.ruoyi.iot.domain.entity.DeviceFaultWindow;
import com.ruoyi.iot.domain.entity.DeviceTemperatureWindow;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 综合窗口查询Mapper
 */
@Mapper
public interface DeviceWindowQueryMapper {

    /**
     * 查询指定设备最新的温度窗口。
     *
     * @param deviceId 设备编号
     * @param granularityMinutes 聚合粒度
     * @return 温度窗口
     */
    DeviceTemperatureWindow selectLatestTemperature(@Param("deviceId") String deviceId,
                                                    @Param("granularityMinutes") int granularityMinutes);

    /**
     * 查询指定设备最新的故障窗口。
     *
     * @param deviceId 设备编号
     * @param granularityMinutes 聚合粒度
     * @return 故障窗口
     */
    DeviceFaultWindow selectLatestFault(@Param("deviceId") String deviceId,
                                         @Param("granularityMinutes") int granularityMinutes);

    /**
     * 查询指定设备最新的电气窗口。
     *
     * @param deviceId 设备编号
     * @param granularityMinutes 聚合粒度
     * @return 电气窗口
     */
    DeviceElectricalWindow selectLatestElectrical(@Param("deviceId") String deviceId,
                                                   @Param("granularityMinutes") int granularityMinutes);
}
